import paddle
import matplotlib.pyplot as plt
from paddle.vision.transforms import Compose, Normalize

# 手写数字的MNIST数据集，包含60,000个用于训练的示例和10,000个用于测试的示例。
# # 这些数字已经过尺寸标准化并位于图像中心，图像是固定大小(28x28像素)，其值为0到9。
# 该数据集的官方地址为：http://yann.lecun.com/exdb/mnist 。
# 飞桨框架自带的 paddle.vision.datasets.MNIST 完成mnist数据集的加载。
def load_minist():
    transform = Compose([Normalize(mean=[127.5], std=[127.5], data_format="CHW")])
    # 使用transform对数据集做归一化
    print("download training data and load training data")
    train_dataset = paddle.vision.datasets.MNIST(mode="train", transform=transform)
    test_dataset = paddle.vision.datasets.MNIST(mode="test", transform=transform)
    return train_dataset,test_dataset
    print("load finished")

def minist_test(train_dataset):
    train_data0,train_label_0 = train_dataset[0][0],train_dataset[0][1]
    train_data0 = train_data0.reshape([28,28])
    plt.figure(figsize=(2,2))
    plt.imshow(train_data0,cmap=plt.cm.binary)
    plt.show()
    print("train_data0 label is: " + str(train_label_0))

if __name__== '__main__':
    load_minist()